feat(dc_measurements): add Mission Measurement NavigateThroughPoses adapter - #404
Merged
Minipada merged 3 commits intoAug 20, 2026
Merged
Conversation
…dapter (#388) Adds `mission_nav2_through_poses` (class MissionNav2ThroughPoses), a passive rclcpp_action-topic observer emitting mission_start/mission_end Records for nav2's NavigateThroughPoses action, in #387's Record schema with mission_type: "navigate_through_poses". Watches the action's own _action/status + _action/feedback topics and _action/get_result service rather than sending a competing goal, so it never preempts the real navigation client. Closes #388 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012q87RuoZxzfQEBotiaS88u Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
Minipada
force-pushed
the
feature/388-add-the-mission-measurement-navigatethro
branch
from
August 20, 2026 11:24
9959947 to
2f63055
Compare
…2_msgs CI's real Jazzy build failed with a missing-header error for nav2_msgs/msg/waypoint_status.hpp. The earlier field verification fetched ros-navigation/navigation2 without pinning a ref, resolving to its default (rolling) branch rather than the jazzy branch this repo's rosdep actually installs -- on jazzy, NavigateThroughPoses::Result has no waypoint_statuses field at all. Removed it from the core, plugin, schema, tests, and docs rather than working around a field that doesn't exist on the nav2 this repo targets; every other field (error_code/error_msg/number_of_recoveries, action_msgs' status_list/goal_info/goal_id) was re-verified against the jazzy branch directly and is unaffected. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012q87RuoZxzfQEBotiaS88u Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## jazzy #404 +/- ##
==========================================
+ Coverage 68.09% 68.71% +0.62%
==========================================
Files 102 104 +2
Lines 6320 6483 +163
==========================================
+ Hits 4303 4454 +151
- Misses 2017 2029 +12
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
… fixture CI's colcon test failed all 7 test_measurement_mission_nav2_through_poses cases with "goal_handle attempted invalid transition from state EXECUTING with event EXECUTE". The fake action-server fixture's handle_goal callback returns ACCEPT_AND_EXECUTE, which rcl_action already uses to drive the goal handle from ACCEPTED to EXECUTING before handle_accepted runs; calling execute() again there was a second EXECUTE event on an already-EXECUTING goal handle, which rcl_action treats as a hard error rather than a no-op. The plugin under test was never at fault. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012q87RuoZxzfQEBotiaS88u Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
github-actions
Bot
deleted the
feature/388-add-the-mission-measurement-navigatethro
branch
August 20, 2026 12:24
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dc_measurementsplugin,mission_nav2_through_poses(classMissionNav2ThroughPoses), watching nav2'sNavigateThroughPosesaction and emittingmission_start/mission_endRecords in Add the Mission Measurement: nav2 adapter (mission_start/mission_end Records) #387's Record schema, withmission_type: "navigate_through_poses".rclcpp_action::Clientcompeting for the action server's single active goal: it subscribes to the action's
own
_action/status/_action/feedbacktopics and calls_action/get_resultdirectly, rather than sending its own goal (which would preempt whatever real
navigation client — BT navigator, fleet orchestrator — is actually driving the
robot). All generated-message field names used were cross-checked against the real
.msg/.actiondefinitions inros-navigation/navigation2andros2/rcl_interfaces/ros2/unique_identifier_msgson GitHub.mission_nav2_through_poses_core.hpp) interprets goal-status/resultinto
mission_start/mission_endfacts, following Two ROS-free modules in dc_common: StateTransitionDetector and BatteryCycleAccumulator #360'sStateTransitionDetector/BatteryCycleAccumulatorsplit precedent.mission_nav2_through_poses.json), doc page, and both a ROS-freecore unit test and a
MeasurementServerintegration test using a realrclcpp_action::Serverfixture standing in for nav2.Closes #388
Test plan
git add -A && prek run --all-files --skip build-docpasses cleancolcon build --packages-select dc_measurements(no ROS 2 toolchain available inthe sandbox this was written in — see
progress.txt's Add the Mission Measurement: NavigateThroughPoses adapter #388 entry for what wasverified without it)
colcon test --packages-select dc_measurements(new tests:dc_measurements_test_mission_nav2_through_poses_core,dc_measurements_test_measurement_mission_nav2_through_poses)🤖 Generated with Claude Code
https://claude.ai/code/session_012q87RuoZxzfQEBotiaS88u